Software as a Service (SaaS) has recently grown in popularity as a low cost way for businesses to obtain the benefits of commercially licensed, internally operated software without the complexity and cost typically associated with obtaining and maintaining the software. SaaS is a software delivery model which makes software applications available to customers via the internet. The software applications are hosted and operated by the software developer (or a third party), for use by the customer. Revenue is paid to the software developer for the use of the application by the customer, rather than for the ownership of the application. SaaS thus enables customers to outsource business processes, such as backup and recovery or other services, to increase the availability, reliability and cost effectiveness of administration of the services.
SaaS offerings are generally commercially available applications, (i.e., not customized) that are accessed via the web-based applications that are delivered via standard Internet Browser and mobile browsers client as well as web based application programming interfaces that are integrated into customer's applications. SaaS applications are typically ‘hosted’ from a centralized location rather than at the customer sites via remote customer accesses. SaaS vendors typically use a multi-tenant architecture where multiple different tenants each execute the same software that processes their tenant owned data. Centralized management of a SaaS application permits centralized feature updating, thereby removing the need for downloading of patches and upgrades. Examples of popular SaaS applications include Customer Relations Management (CRM), video conferencing, accounting and email services. In general currently SaaS vendors support the delivery of a single application as a SaaS rather than providing a platform that can deliver and host multiple applications as software as a services.
The SaaS business model is an evolution from the Application Services Provider (ASP) model and overcomes several problems of the ASP model. In an ASP business model, a service provider obtains a commercially available application and hosts the application for customers by generating a unique application instance that is dedicated to supporting the particular customer. Although the ASP hosts the applications, the applications are typically authored by third party application providers.
One problem with the ASP model is the difficulty associated with supporting the third party software because the ASP would not typically have the expertise to support the third party offerings. In addition because the ASP architecture generates separate application instances for each customer use, delivering patches and upgrades to the customers is a non-trivial task. Supporting and maintaining the separate application instances makes it difficult to effectively scale an ASP solution.
The SaaS architecture overcomes scalability and maintenance issues through the use of one software application, for which maintenance upgrades can be made instantly available across the entire customer base. However, the advantages of the SaaS system can also be viewed as drawbacks; while the SaaS model allows a software application to be viewed as a commodity that is available to all customers, it can't be ignored that each customer will have differing needs which may be better suited by customization of the software application. In addition the centralized management of applications and data across wide customer bases may cause security concerns for customers. Accordingly, it would be desirable to identify an architecture which would realize the benefits of the SaaS architecture while enabling a degree of customization and an assurance of security and privacy to the customers.